package main

import (
	"fmt"
	"reflect"
)

//func main() {
//var x float64 = 3.4
//t := reflect.TypeOf(x)  // t 是 reflect.Type 类型，表示 float64
//v := reflect.ValueOf(x) // v 是 reflect.Value 类型，表示 x 的值
//
//fmt.Println(t)
//fmt.Println(v)
//}

type Person struct {
	Name string
	Age  int
}

func main() {
	p := Person{Name: "Alice", Age: 25}
	v := reflect.ValueOf(p)
	fmt.Println(v.NumField())
	fmt.Println(p.Name)
	for i := 0; i < v.NumField(); i++ {
		field := v.Field(i)
		fmt.Printf("Field Name: %s, Value: %v\n", v.Type().Field(i).Name, field)
	}
}
